#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <unistd.h>


void leak(int fd, int size)
{
    static const int cmd = 1;
    int ret = ioctl(fd, cmd, size);
    if (ret) {
        printf("ioctl failed!\n");
    }
}

int main(int argc, char *argv[])
{
    int fd = open("/dev/leaktest", O_RDWR); 
    if (fd < 0) {
        printf("open dev err!\n");
        return -1;
    }

    leak(fd, 10);
    leak(fd, 20);
    leak(fd, 30);
    leak(fd, 40);
    leak(fd, 50);
    leak(fd, 60);
    leak(fd, 70);
    leak(fd, 80);
    leak(fd, 90);

    leak(fd, 100);
    leak(fd, 200);
    leak(fd, 300);
    leak(fd, 400);
    leak(fd, 500);
    leak(fd, 600);
    leak(fd, 700);
    leak(fd, 800);
    leak(fd, 900);

    leak(fd, 1000);
    leak(fd, 2000);
    leak(fd, 3000);
    leak(fd, 4000);
    leak(fd, 5000);
    leak(fd, 6000);
    leak(fd, 7000);
    leak(fd, 8000);

    printf("press any key\n");
    getchar();
    close(fd);
    return 0;
}
